using System;
using System.Collections.Generic;
using Me.Prettyprint.Hector.Api;

namespace Me.Prettyprint.Hector.Api.Beans
{
    /// <summary>
    /// Models a Counter SuperColumn.
    /// </summary>
    /// <typeparam name="SN"></typeparam>
    /// <typeparam name="N"></typeparam>
	public interface HCounterSuperColumn<SN,N>
	{
        SN Name
        {
            get;
            set;
        }
        HCounterSuperColumn<SN, N> SetName(SN name);
        HCounterSuperColumn<SN, N> SetSubcolumns(List<HCounterColumn<N>> subcolumns);
        HCounterColumn<N> Get(int i); 
        HCounterSuperColumn<SN, N> AddSubCounterColumn(HCounterColumn<N> column);
        int Count
        {
            get;
        }
        List<HCounterColumn<N>> Columns
        {
            get;
        }
        byte[] NameBytes
        {
            get;
        }
        Serializer<SN> GetNameSerializer();
        Serializer<SN> GetSuperNameSerializer();
	}
}